'''

from locust import HttpUser
from locust import task
import os
#我们在做接口自动化测试时，使用的是request对接口发起请求，在这里我们用的是locust中的httpuser对接口进行发起请求
class Opms(HttpUser):
    def on_start(self):
        print("我是一个用户，我启动了")

    def on_stop(self):
        print("我是一个用户，我退出了")
#定义好的接口必须使用task装饰器使其成为一个需要执行的任务，否则的话即使启动了locust也不会将定义好的函数作为一个需要执行的任务
@task
def findAll(self):
    url = "http://192.168.1.119:9002/sys/user/findAll"
    with self.client.get(url=url, name="获取全部信息", catch_response=True) as res:
        #下面断言，当我们返回的text中有项目管理则登录成功，反之失败
        if res.json()["code"] == 10000:
            res.success()
        else:
            res.failure("获取失败")

@task
def postLogin(self):
    url = "/login"
    data = {
    "username": "libai",
    "password": "opms123456"
    }
    with self.client.post(url, data=data, name="登录", catch_response=True) as res:
        if res.json()["code"] == 1:
            res.success()
        else:
            res.failure("自定义失败：登陆失败")


if __name__ == '__main__':
    os.system("locust -f test1.py --web-host=127.0.0.1")

'''


import json
import os

from locust import HttpUser, TaskSet, task, between


class Demo(TaskSet):
    @task
    def test_get(self):
        url = "http://192.168.1.119:9002/sys/user/findAll"
        self.client.get(url)
        with self.client.get(url=url, name="获取全部信息", catch_response=True) as res:
            # 下面断言，当我们返回的text中有项目管理则登录成功，反之失败
            if res.json()["code"] == 10000:
                res.success()
            else:
                res.failure("获取失败")
    '''
    @task
    def test_post(self):
        responses = self.client.post(url='url', headers='headers', data='body')
        # 对返回内容 进行断言
        if responses.status_code == 200:
            rst = json.loads(responses.text, strict=False)
            if rst['code'] == '00000':
                responses.success()  # Locust ResponseContextManager类提供的  Report the response as successful
            else:
                responses.failure('code：%s ErrorMsg：%s' % (rst['code'], rst['errorMsg']))
        else:
            responses.failure('status_code：%s' % responses.status_code)

    '''

class WebsiteUser(HttpUser):
    tasks = [Demo]
    min_wait = 1000
    max_wait = 5000

    # between(min_wait, max_wait)
    # wait_time = between(2, 5)  # 单位为s   等待时间  任务执行间隔时间


# 以下 便于当前脚本 本地调试
# 启动 当前脚本
if __name__ == "__main__":
    os.system("locust -f test1.py --web-host=127.0.0.1")



